/******************************************************************************
 * @file     gpio.h
 * @brief    Bootloader中gpio外设相关函数
 * @author   Ruilist
 * @date     2025-08-15
 * @version  V1.0.0
 * @copyright Copyright (c) 2025
 *
 * @note     1 tab = 4 space
 *
 * @par 日志:
 * - V1.0.0 2025-08-15 Ruilist
 *****************************************************************************/

#ifndef __GPIO_H
#define __GPIO_H

//******************************** Includes *********************************//

#include "stm32f4xx.h"
#include "main.h"

//******************************** Includes *********************************//

//******************************** Defines **********************************//

#define LED_C13_PORT GPIOC
#define LED_C13_PIN  GPIO_Pin_13

#define LED_OFF      GPIO_SetBits( LED_C13_PORT, LED_C13_PIN );
#define LED_ON       GPIO_ResetBits( LED_C13_PORT, LED_C13_PIN );

//******************************** Defines **********************************//

//******************************** Declaring ********************************//

/**
 * @brief   key的io接口初始化，PA0，按下时为低电平
 *
 * @param   void
 *
 * @return  void
 *
 */
void Key_IO_Init( void );

/**
 * @brief   led的io接口初始化，PC13
 *
 * @param   void
 *
 * @return  void
 *
 */
void Led_IO_Init( void );

/**
 * @brief   所有gpio初始化
 *
 * @param   void
 *
 * @return  void
 *
 */
void gpio_init( void );

/**
 * @brief   扫描key的值
 *
 * @param   void
 *
 * @return  uint8_t
 * @retval  0 未按下
 * @retval  1 按下
 *
 */
uint8_t Key_Scan( void );

//******************************** Declaring ********************************//

#endif  // End of __GPIO_H
